module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [
      2,
      'always',
      [
        'feat',     // ✨ 新功能
        'fix',      // 🐛 修复bug
        'docs',     // 📝 文档变更
        'style',    // 💄 代码格式化，不影响功能
        'refactor', // ♻️ 代码重构，既不是新增功能，也不是修复bug
        'perf',     // ⚡ 性能优化
        'test',     // ✅ 添加测试或修正测试
        'build',    // 🔧 构建系统或外部依赖的变更
        'ci',       // 👷 CI配置文件和脚本的变更
        'chore',    // 🔨 其他变更，不修改src或test文件
        'revert',   // ⏪ 回滚之前的commit
        'wip',      // 🚧 工作进行中
        'workflow', // 📋 工作流相关文件修改
        'types'     // 🏷️ 类型定义文件更改
      ]
    ],
    'subject-max-length': [2, 'always', 100],
    'subject-case': [2, 'never', ['start-case', 'pascal-case', 'upper-case']],
    'subject-empty': [2, 'never'],
    'type-empty': [2, 'never'],
    'scope-case': [2, 'always', 'lower-case'],
    // 允许 emoji 前缀
    'subject-full-stop': [0, 'never'],
    // 支持 emoji 开头的提交信息
    'header-max-length': [2, 'always', 120]
  },
  // 自定义解析器以支持 emoji
  parserPreset: {
    parserOpts: {
      headerPattern: /^(?:(\w*)(?:\(([\w\$\.\-\*\s]*)\))?\: )(.*)$/,
      headerCorrespondence: ['type', 'scope', 'subject']
    }
  }
};